package com.okhttp.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author GYL
 * @dateTime 2020/4/24-14:55
 * @description 对Retrofit 服务接口中方法注解
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface ApiResponseHandler {

  /**
   * 数据类型
   * @return
   */
  Class<?> handler() default Void.class;

  /**
   * 泛型类型
   * @return
   */
  Class<?> genericity() default Void.class;

  /**
   * 是否生成此接口实现方法
   * @return
   */
  boolean isGenerate() default true;
  
  /**
   * 是否为同步方法，当等于true时，则无需要回调类，直接返回执行结果,handler，genericity 将无效
   * @return
   */
  boolean isSync() default false;

}
